Prioritized retrieval and/or processing of data via query selection

ABSTRACT

Systems and methods of prioritizing retrieval and/or processing of data related to a subset of attributes based on a prediction of associated values are presented herein. In certain implementations, a request for values associated with respective first attributes may be received. Based on the request, first queries for data related to the first attributes may be performed. Based on the first queries, a first subset of data related to calculating at least some of the associated values may be received. At least some of the associated values may be predicted based on the first subset of data. Based on the prediction of the associated values, retrieval and/or processing of data related to a first subset of the first attributes may be prioritized over retrieval and/or processing of data related to one or more other subsets of the first attributes.

CROSS-REFERENCE TO RELATED APPLICATIONS

This present application is a continuation of U.S. patent applicationSer. No. 15/409,499, entitled “PRIORITIZED RETRIEVAL AND/OR PROCESSINGOF DATA VIA QUERY SELECTION,” filed on Jan. 18, 2017, which is acontinuation-in-part of U.S. patent application Ser. No. 15/010,986,entitled “PRIORITIZED RETRIEVAL AND/OR PROCESSING OF DATA,” filed onJan. 29, 2016, which is a continuation of U.S. patent application Ser.No. 14/634,680, entitled “PRIORITIZATION OF RETRIEVAL AND/OR PROCESSINGOF DATA,” filed on Feb. 27, 2015, the content of each of which is herebyincorporated herein by reference in its entirety.

FIELD OF THE INVENTION

The invention relates generally to prioritizing retrieval and/orprocessing of data over retrieval and/or processing of other data.

BACKGROUND OF THE INVENTION

With the recent influx of smartphones, tablets, and/or other mobiledevices having connectivity to the Internet, businesses, consumers, orother users are frequently receiving, analyzing, sharing, and creatingnew information. Obtaining such information may involve querying fordata across a plurality of data sources. Because retrieval and/orprocessing of such data may be time consuming, and users are often notprovided with their requested information until retrieval and processingof such data have finished, there may be considerable delay before auser is provided with any substantive information related to theirrequest. These and other drawbacks exist.

SUMMARY OF THE INVENTION

The invention addressing these and other drawbacks relates to methods,apparatuses, and/or systems for prioritizing retrieval and/or processingof data over retrieval and/or processing of other data. In certainimplementations, retrieval and/or processing of data related to onesubset of attributes may be prioritized over retrieval and/or processingof data related to other subsets of the attributes to reduce latencyrelated to providing a presentation of values associated with theattributes and/or to provide other benefits. As an example, theprioritization may be based on a prediction that one subset of theattributes (and its associated values) will be presented in a portion ofa user interface that is initially “in-view” (e.g., seen by the user)and/or that the other subsets of the attributes (and their associatedvalues) will be presented in a portion of a user interface that isinitially “out-of-view” (e.g., not seen by the user). Based on theprioritization, for example, (1) data related to the prioritizedattribute subset may be retrieved and/or processed before the retrievaland/or processing of data related to the other attribute subsets, (2)more computing resources may be allocated for retrieving and/orprocessing data related to the prioritized attribute subset than forretrieving and/or processing data related to the other attributesubsets, or (3) other prioritization techniques may be performed.

In some implementations, retrieval and/or processing of data related toa subset of attributes may be prioritized based on a prediction ofvalues associated with the attributes. As an example, based on a requestfor values associated with a set of attributes, an initial query (or aninitial set of “micro-queries”) may be performed to obtain an initialsubset of data related to calculating values associated with theattributes. The associated values may then be predicted based on theinitial data subset, and the predicted values may be utilized toprioritize retrieval and/or processing of data related to one subset ofthe attributes over retrieval and/or processing of data related to othersubsets of the attributes. In one use case, for example, priority may beassigned to a particular subset of attributes when the predicted valuesassociated with the subset of the attributes are greater than thepredicted values associated with other subsets of the attributes (e.g.,if the attributes and their associated values are to be presented indescending order). In another use case, priority may be assigned to aparticular subset of attributes when the predicted values associatedwith the subset of the attributes are less than the predicted valuesassociated with other subset of the attributes (e.g., if the attributesand their associated values are to be presented in ascending order).

In some implementations, an “attribute” may comprise an object, anentity, a property, a characteristic, etc., of theentity-attribute-value model (which may also be referred to as the“object-attribute-value model”) or other data model. As an example, withrespect to the entity-attribute-value model, a value associated with twoattributes may comprise a value associated with a characteristic of anentity where the characteristic is a first attribute and the entity is asecond attribute.

These and other features of the present invention, as well as themethods of operation and functions of the related elements of structureand the combination of parts and economies of manufacture, will becomemore apparent upon consideration of the following description and theappended claims with reference to the accompanying drawings, all ofwhich form a part of this specification, wherein like reference numeralsdesignate corresponding parts in the various figures. It is to beexpressly understood, however, that the drawings are for the purpose ofillustration and description only and are not intended as a definitionof the limits of the invention. As used in the specification and in theclaims, the singular form of “a”, “an”, and “the” include pluralreferents unless the context clearly dictates otherwise. In addition, asused in the specification and the claims, the term “or” means “and/or”unless the context clearly dictates otherwise.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention is illustrated by way of example, and not by way oflimitation, in the figures of the accompanying drawing and in which likereference numerals refer to similar elements.

FIG. 1 illustrates a diagram of a system for prioritizing retrievaland/or processing of data, in accordance with one or moreimplementations.

FIG. 2 illustrates a data visualization user interface, in accordancewith one or more implementations.

FIG. 3 illustrates a data visualization user interface, in accordancewith one or more implementations.

FIG. 4 illustrates a data visualization user interface, in accordancewith one or more implementations.

FIG. 5 illustrates an information exchange flowchart for prioritizedretrieval and/or processing of data, in accordance with one or moreimplementations.

FIG. 6 illustrates an information exchange flowchart for prioritizedretrieval and/or processing of data, in accordance with one or moreimplementations.

FIG. 7 illustrates a flowchart of processing operations for prioritizingretrieval and/or processing of data, in accordance with one or moreimplementations.

FIG. 8 illustrates another flowchart of processing operations forprioritizing retrieval and/or processing of data, in accordance with oneor more implementations.

DETAILED DESCRIPTION OF THE INVENTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the implementations of the invention. It will beappreciated, however, by one skilled in the art that the implementationsof the invention may be practiced without these specific details or withan equivalent arrangement. In other instances, well-known structures anddevices are shown in block diagram form in order to avoid unnecessarilyobscuring the implementations of the invention. It should be noted thatfeatures (e.g., components, operations, or other features) describedherein may be implemented separately or in combination with one another.

FIG. 1 illustrates a diagram of system 100 for prioritizing retrievaland/or processing of data related to a subset of attributes based on aprediction of associated values, in accordance with one or moreimplementations. System 100 may comprise one or more servers 102. Server102 (or servers 102) may be configured to communicate with one or moreuser devices 104 according to a client/server architecture (e.g., overcommunication network 106 or via other communication medium). Users mayaccess system 100 via user devices 104.

Server 102 may be programmed to execute one or more computer programcomponents to facilitate prioritization of retrieval and/or processingof data. The computer program components may include a data requestcomponent 108, a query component 110, a value component 112, aprioritization component 114, a resource component 116, a presentationcomponent 118, and/or other components.

The data request component 108 may be programmed to receive a requestfor values associated with respective attributes. A value may beassociated with one or more attributes (e.g., an object, an entity, aproperty, a characteristic, etc.). As an example, with respect to FIG.2, values represented by data elements 206 a-206 y may each beassociated with at least one attribute represented in sections 202 a-202e, at least one attribute represented in sections 204 a-204 e, and atleast one attribute represented in sections 208 a-208 e.

Presentation component 118 may be programmed to effectuate presentationof a data visualization user interface (e.g., at user devices 104). Thedata visualization user interface may be programmed to receive entryand/or selection by users of a first attribute group (associated withfirst attributes), a second attribute group (associated with secondattributes), and/or other information. The user entry and/or selectionmay correspond to a request for values. The data visualization userinterface may be programmed to present (predicted, updated, and/orcalculated) values associated with a set of attributes (or arepresentation thereof) based on the request.

In some implementations, a data visualization user interface provided bypresentation component 118 may be in the form of a pivot table (or otherdisplay style). The data visualization user interface may include rows,columns, data elements, other portions, and/or other interface elements.The rows and columns may represent respective ones of at least a firstset of attribute (or first attributes) and a second set of attributes(or second attributes). Data elements may individually represent a valueassociated with a respective one of the first attributes and arespective one of the second attributes. For example, a datavisualization user interface may include a construction of an N by Mmatrix where N represents a series of first attributes in rows and Mrepresents a series of second attributes as columns. The intersection ofN and M may represent the data elements representing the valuesassociated with the first and second attributes.

For example, FIG. 2 illustrates a diagram of a data visualization userinterface 200 that facilitates the generation of requests for values anddisplays results from prioritized retrieval and/or processing of data.It is noted that the depiction of the user interface 200 andaccompanying descriptions are intended for illustrative purposes only.For example, in some implementations, the procedures and/or processesdescribed in connection with the user interface 200 may instead beperformed without the presentation of values to a user. Instead, forinstance, predicted values may simply be stored in a database for lateruse, placed into a queue for further processing, etc.

With that being said, in FIG. 2, portion 210 may represent a firstattribute group (e.g., State, Gender, Zip Code, City, Income, ProductCategory, or other attribute group). Portion 202 may include sections202 a-202 e that may represent at least a subset of attributes (e.g.,Ala., Ak., Ariz., and/or other state; Male, Female, or othercharacteristic; 92007, 92014, 92024, and/or other zip code; 0- $25k,$25k - $50k, and/or other income or range; Electronics, Books, Jewelry,Accessories, Arts, Audio, Men's, Woman's, and/or other product category;and/or other attributes) included in the first attribute group. Portion210 may include a first control element 211. The first control element211 may facilitate setting of a sorting preference for the attributesincluded in the first attribute group (e.g., thereby affecting the orderin which the attributes may be presented). Sorting may be based on adescription (e.g. name, numerical range, and/or other description) ofrespective ones of the attributes of the first attribute group, thevalues associated with the attributes of the first attribute group, orother criteria. For example, the first control element 211 may be usedto sort the attributes of the first attributes group in ascending orderbased on their respective values, descending order based on theirrespective values, alphabetically based on the names of the firstattributes, etc. As an example, the sorting may modify the subset ofattributes that are displayed in sections 202 a-202 e.

In FIG. 2, portion 212 may represent a second attribute group (e.g.,State, Gender, Zip Code, City, Income, Product Category, and/or otherattribute group). Portion 204 may include sections 204 a-204 e that mayrepresent a subset of attributes (e.g., Ala., Ak., Ariz., and/or otherstate..; Male or Female; 92007, 92014, 92024, and/or other zip code; $0-$25k, $25k - $50k, and/or other income or range; Electronics, Books,Jewelry, Accessories, Arts, Audio, Men's, Woman's, and/or other productcategory; and/or other attributes) included in the second attributegroup. Portion 212 may include a second control element 213. The secondcontrol element 213 may facilitate setting a sorting preference for theattributes included in the second attribute group. The sorting may, forexample, affect the attributes of the second attribute group that may beincluded in the subset of attributes displayed in sections 204 a-204 e.

Portion 206 may include data elements 206 a-206 y that may represent atleast some values associated with the attributes of the first and/orsecond attribute groups. The values conveyed by the data elements 206a-206 y may be associated with respective ones of the attributes of thefirst attribute group in sections 202 a-202 e and respective ones of theattributes of the second attribute group in sections 202 a-202 e. Forexample, data element 206 a may be associated with a first attribute insection 202 a and a second attribute in section 204 a.

Control elements 224, 226, and/or 228 may facilitate user modificationsto the data visualization user interface 200. As an example, controlelement 224 may correspond to configuring and/or setting the attributegroups represented by the Columns and Rows of the pivot table (e.g.,FIG. 3). Control element 226 may be selected to apply filters to exploreother available data elements 206 a-206 y that may not currently be inthe viewable area of portion 206 or may initiate requests for othervalues. Control element 228 may be selected to change the display stylefor depicting the attribute groups, attributes, values, and/or otherinformation. Display styles may comprise a pivot table, a bar chart, abubble graph, a pie chart, a scatter plot, a word cloud, a zoomable map,and/or other display style.

Still referring to FIG. 2, portion 214 may include a pause/play button216 for pausing or playing the data visualization, an indicator 218specifying that the data visualization is live data, and a sliding-basedcontrol element 220 having a movable control element 222 for rewindingto visualize historical data, fast-forwarding back to visualizing livedata, fast-forwarding to visualize predictions of future data, etc. Asshown by indicator 218, the data visualization that is depicted inportion 206 may represent live data. A user may, for example, slidemovable control element 222 to the left on sliding-based control element220 to switch the data visualization of the live data to a datavisualization of historical data.

In one use case, with respect to FIG. 2, data elements 206 a-206 y mayrepresent values associated with attributes displayed in sections 202a-202 e (and/or with value types displayed in section 208 a-208 e). Theassociated values may, for example, include the most up-to-date valuesfor a certain time period thus far (e.g., a current day, week, month,year, etc.). Upon moving of movable control element 222 toward the leftalong sliding-based control element 220 onto a point associated with aparticular time, a request for data elements associated with thedisplayed attribute (with respect to the particular time and/or timeperiod) may be initiated. As an example, responsive to the request, ahistorical data store may be determined and used to obtain datanecessary for determining values that may be represented by the dataelements 206 a-206 y.

Returning to FIG. 1, based on the selection of a first and/or a secondattribute group, the query component 110 may be programmed to performqueries for data relating to attributes of the first attribute group,attributes of the second attribute group, and/or other attributes. Thequeries may be performed across a plurality of data sources. The queriesmay be performed over one or more query intervals (e.g., based on datasources, time periods, geographic areas, randomized, etc.). As anexample, responsive to a user request for a data visualization ofoverall sales volume of various product categories during a particularyear, at least first and second sets of queries may be performed (whereeach set comprises one or more queries). The first and second sets ofqueries may be performed in series or in parallel. When data from oneset of queries is obtained, the obtained data may be processed topredict the values associated with the overall sales volume of thevarious product categories during the requested year without having towait for data from the other set(s) of queries to be obtained. When datafrom at least one remaining set of queries is obtained, this data maythen be processed to update the predicted values (e.g., if not all ofthe queries has returned data) and/or calculate the final valuesassociated with the overall sales volume of the various productcategories during the requested year (e.g., if data from all of thequeries has been obtained).

In one use case, the first set of queries may comprise one or morequeries to a first subset of the relevant data sources to be searchedfor the requested data, and the second set of queries may comprise oneor more queries to a second subset of the relevant data sources for therequested data. In another use case, the first set of queries maycomprise one or more queries for such data related to one or more timeperiods during the requested year, and the second set of queries maycomprise one or more queries for such data related to one or more othertime periods during the requested year. The time periods for each set ofqueries may, for example, comprise randomly-selected time periods duringthe requested year (e.g., randomly-selected amount of time per period,randomly-selected time periods with predefined amount of time perperiod), a predefined set of time periods during the requested year, orother time periods which together comprise a subset of the requestedyear.

In another yet use case, the first set of queries may comprise one ormore queries for such data related to one or more geographic areas(e.g., a subset of zip codes per state, a subset of cities per state, asubset of regions per country, etc.), and the second set of queries maycomprise one or more queries for such data related to one or more othergeographical areas. The geographical areas for each set of queries may,for example, comprise randomly-selected geographical areas, a predefinedset of geographical areas, or other geographical areas which togethercomprise a subset of an overall requested geographical area.

In some implementations, the query component 110 may randomly determinea first subset of queries to be performed (e.g., randomly selectingwhich queries to be executed), and the value component 112 may predictone or more values based on at least some data obtained from the firstsubset of queries. As an example, the obtainment of the data and/or theprediction of the values may be performed prior to performing one ormore other queries derived from the same user request as the firstsubset of queries, prior to obtaining data from the performance of theother queries, etc. In one use case, the first subset of queries maycomprise one or more randomly-selected queries to search a first subsetof the relevant data sources for requested data. In another use case,the first subset of queries may comprise one or more randomly-selectedqueries for data related to one or more time periods (e.g., by day, bymonth, by year, etc.). In another use case, the first subset of queriesmay comprise one or more randomly-selected queries for data related toone or more geographic areas (e.g., by zip code, by city, by state, bycountry, etc.). In some implementations, the random selection may be apseudorandom selection (e.g., by executing a RdRand instruction andapplying a seed value, by applying probabilities or other weights toeach query and sampling the queries based on such probabilities or otherweights to select a subset of the queries, etc.).

In some implementations, responsive to a user request, query component110 may randomly select a first subset of queries related to the userrequest to be performed, a second subset of queries related to the userrequest to be performed, or other subsets of queries to be performed. Asan example, when data from the first subset of queries is obtained, theobtained data may be processed to predict one or more values associatedwith attributes of the requested data. When data from the second subsetof queries is obtained, this data may then be processed to update thepredicted values (e.g., if not all of the queries has returned data)and/or calculate the final values associated with the attributes of therequested data. In some implementations, the first and second subset ofqueries may be randomly selected in parallel. In some implementations,the first subset of queries may be randomly selected and processed priorto initiating the random selection of other subsets of queries (e.g.,prior to the random selection of the second subset of queries or othersubsets of queries).

In one use case, responsive to a user request for a data visualizationof the overall sales volume of various product categories for aparticular income range, a set of queries related to the user requestmay be generated. A first subset of queries may be randomly selectedfrom the set of generated queries and executed to obtain data. When datafrom the first subset of queries is obtained, the obtained data may beprocessed to predict the values associated with the overall sales volumeof various product categories for a particular income range withouthaving to wait the other subsets of queries to be executed, withouthaving to wait for data from the other subsets of queries to beobtained, etc. When at least one remaining subset of queries is executedand data from that subset of queries is obtained, this data may then beprocessed to update the predicted values and/or calculate the finalvalues associated with the overall sales volume of various productcategories for a particular income range.

In some implementations, the query component 110 may randomly selectqueries (e.g., from a set of queries related to a user request) to beexecuted, where the random selection of the queries is performed withoutregard to whether a particular query was previously selected. Forexample, a first subset of queries that are randomly selected (aspotential queries to be executed) and a second subset of queries thatare randomly selected (as potential queries to be executed) after therandom selection of the first subset of queries may comprise overlappingqueries selected at random. In some implementations, the query component110 may add randomly-selected queries to one or more execution queues,and perform filtering of queries randomly selected for execution so thatone or more queries are removed from an execution queue before thequeries are executed. As an example, if a query (added to an executionqueue) was previously randomly selected and executed to obtain datarelated to the user request, the previously selected-and-executed querymay be removed from the execution queue prior to the query beingexecuted (e.g., responsive to detecting that the query was previouslyexecuted to obtain data for the user request).

In some implementations, the query component 110 may randomly selectqueries that have not been previously selected for execution (to obtaindata related to a given user request). As an example, based on one ormore rules prohibiting random selection of queries previously selectedfor execution to obtain data related to the same user request, a firstsubset of queries that are randomly selected (as potential queries to beexecuted) and a second subset of queries that are randomly selected (aspotential queries to be executed) after the random selection of thefirst subset of queries would not comprise any of the same queries asthe first subset of randomly-selected queries.

In one implementation, the value component 112 may be programmed topredict values associated with a set of attributes based on a subset ofdata obtained via an initial query that corresponds to an initial queryinterval (e.g., a subset of relevant data sources, a subset of arequested time period, a subset of a requested geographic area, etc.).In some implementations, the quantity of available and/or possibleattributes included in a first attribute group may be unknown and/or maybe large (e.g., hundreds, thousands, tens of thousands, and/or otheramount). Due to these or other factors, performing queries for datarelated to all possible and/or available attributes of the firstattribute group may cause unnecessarily delay in getting an adequaterepresentation of the data to a user. The prioritization component 114may be programmed to determine a first subset of attributes (e.g., thatshould be prioritized) of the first attribute group based on theprediction of the values, priority criteria, and/or other information.The first subset of attributes may include respective ones of the firstattributes associated with predicted values most relevant to thepriority criteria. The priority criteria may relate to a thresholdquantity of attributes (e.g., 10, 100, 200, and/or other considerations)for the first subset, sorting preference of the attributes (e.g., sortedfrom highest value to lowest value), or other criteria. As an example,the first subset of the attributes (that is to be given priority overother subsets of the attributes) may include up to the thresholdquantity of attributes with predicted values that are higher thanpredicted values associated with other attribute subsets.

By way of illustration referring back to FIG. 2, once a first attributegroup (or other attribute group), priority criteria, and/or otherinformation has been determined (e.g., set by a user), an initial querymay be performed to obtain a subset of data related to calculatingvalues associated with attributes of the first attribute group. Aprediction of the values may be calculated based on the subset of dataobtained via the initial query. The predicted values may be reflected inthe display of data elements 206 a-206 y. Based on the predicted values,priority criteria, and/or other information, the attributes of the firstattribute group to be included in sections 202 a-202 e may be selected.

In the current depiction, the data visualization user interface 200 maybe limited to displaying only five attributes of the first attributegroup at a given time. As such, the priority criteria may specify thatthe number of attributes to be included in the subset of attributesdisplayed in sections 202 a-202 e to be equal to five. However, thisamount is provided for illustrative purposes only and is not to beconsidered limiting. In other implementations, this amount may varydepending on the size of the data visualization user interface 200, userinput, the available quantity of the attributes of the first attributegroup, and/or other criteria. In this manner, the user (or other entityhaving interest in the values) may be provided an initial presentationof the selected subset of the attributes and their predicted values.

In one scenario, with respect to FIG. 2, a first attribute group“Product Category” may include attributes such as Books, Electronics,Jewelry, Men, Women, Toys, Pet Products, and/or other attributes. Asecond attribute group “User Income” may include attributes such as $0to $25,000, $25,000 to $50,000, $50,000 or more, and/or otherattributes. A third attribute group “Sale Numbers” may include salesvolume and/or other attributes. As an example, Table 1 below mayrepresent predicted values associated with sale volumes (e.g., by unit),respective ones of the “Product Category” attributes (e.g., rows), andrespective ones of the “User Income” attributes (e.g., columns) that maybe streamed in real-time.

TABLE 1 User Income $0 to $25,000 $25,000-$50,000 $50,000 or moreProduct Category Volume Volume Volume Books 107,460,342 107,476,52171,653,491 Electronics 80,622,191 80,610,360 53,752,435 Jewelry67,181,209 67,180,592 44,799,309 Men 26,858,564 26,871,587 17,906,847Women 26,874,505 26,877,982 17,917,377

The values in Table 1 may be predicted sales volumes of the respective“Product Category” and “User Income” attributes for a certain timeperiod (e.g., current day, week, month, year, etc.). The predictedvalues may represent a first prediction based on a first subset of datareceived from a first query. For example, the above values may representa prediction of sales volumes for a 1 hour period of a given day and/orother time period. From the first prediction, it may be determined thatBooks, Electronics, Jewelry, Men, and Women product categories occupythe top five highest sales volumes with regard to all productcategories. For example, in Table 1, the highest predicted sales volumeon a product category basis for users in the income range of $0 to$25,000 is Books at 107,460,342 units. Such values may be reflected bydata elements 206 a-206 y in the pivot table of the data visualizationuser interface 200. The values may be updated continuously to representthe most up-to-date prediction of sales volume values for each of theattributes as more queries for data are performed.

Returning to FIG. 1, the prioritization component 114 may be programmedto prioritize, based on a prediction of values associated with a set ofattributes, retrieval and/or processing of data related to one subset ofthe attributes over retrieval and/or processing of data related to oneor more other subsets of the attributes. Prioritizing retrieval and/orprocessing may be based on a comparison of the predicted values with oneanother (e.g., based on highest to lowest sorting, lowest to highestsorting, and/or other considerations). In FIG. 2, the retrieval and/orprocessing of data related to the attributes in sections 202 a-202 e maybe prioritized over attributes not included in the sections 202 a-202 e(e.g., the “Product Category” attributes not within the “top five”list). In the scenario of Table 1, the retrieval and/or processing ofdata related to Books, Electronics, Jewelry, Men, and Women may beprioritized over retrieval and/or processing of data related to Toys,Pet Products, and/or other “Product Category” attributes.

Returning to FIG. 1, in some implementations, the resource component 116may be programmed to allocate, based on the prioritization of retrievaland/or processing of data related to a subset of attributes, a greateramount of resources (e.g., processing power, random access memory space,non-volatile storage space, network resources, or other resources) toretrieval and/or processing of data related to the prioritized subset ofthe attributes than an amount of resources allocated to retrieval and/orprocessing of data related to the one or more other subsets of the firstattributes. As a result of such allocation, for example, the amount ofresources allocated to the prioritized subset of attributes (forretrieval and/or processing of its related data) may remain greater thanthe amount of resources allocated to the other subsets of attributesuntil the retrieval and/or processing of data related to the prioritizedsubset of attributes is completed.

In some implementations, the query component 110 may be programmed toperform, based on the prioritization of a subset of attributes,additional queries for data related to the prioritized subset ofattributes. The additional queries may be performed before performingfurther queries for data related to other subsets of attributes. Thequery component 110 may be programmed to receive, based on theadditional queries, additional data related to calculating the values ofthe prioritized subset of attributes. The value component 112 may beprogrammed to update, based on the additional data, the prediction ofthe values associated with the prioritized subset of attributes. As anexample, with respect to FIG. 2, the update of the prediction of thevalues may be conveyed to a user by updating the data elements 206a-206y that represent the values. In the scenario shown in Table 1, theadditional queries may be for data related to Books, Electronics,Jewelry, Men, and Women's apparel. An example of an updated predictionof the values for Books, Electronics, Jewelry, Men, and Women is shownin Table 2 below (as compared with Table 1 above).

TABLE 2 User Income $0 to $25,000 $25,000-$50,000 $50,000 or moreProduct Category Volume Volume Volume Books 106,554,102 107,481,41272,112,474 Electronics 80,630,007 79,985,547 53,741,345 Jewelry68,045,998 67,223,879 45,000,199 Men 26,910,094 27,747,203 18,023,814Women 25,887,789 26,702,986 17,830,223

In some implementations, the query component 110 may be programmed toperform one or more other queries for data related to subsets ofattributes other than a prioritized subset. The query component 110 maybe programmed to receive, based on the other queries, one or more othersubsets of data related to calculating the values associated with theother attributes. The value component 112 may be programmed to predict(e.g., a subsequent prediction) the values associated with the otherattributes based on the other subsets of data.

In some implementation, the subset of attributes for which priority isgiven may be modified to add other attributes and/or to removeattributes from the prioritized subset. As an example, prioritizationcomponent 114 may be programmed to compare the updated predicted valuesassociated with a current prioritized subset of the attributes with thepredicted values associated with other subsets of the attributes. Theprioritization component 114 may be programmed to update, based on thecomparison, respective ones of the attributes that are included in theprioritized subset of the attributes. That is, by comparing the updatedpredicted values to one another, it may be determined whether one ormore attributes should added to and/or removed from the prioritizedsubset of the attributes. As an example, the prioritized subset of theattributes may be updated to add one or more attributes to theprioritized subset if the updated predicted values of those attributessatisfy the priority criteria, and thus, should be included in theprioritized subset. As another example, the prioritized subset of theattributes may be updated to remove one or more attributes from theprioritized subset if the updated predicted values of those attributesno longer satisfy the priority criteria.

As an illustrative example, following the scenarios of Tables 1 and 2,Table 3 shown below depicts predicted values for other “ProductCategory” attributes (e.g., Toys and Pet Products) based on one or moreother queries.

TABLE 3 User Income $0 to $25,000 $25,000-$50,000 $50,000 or moreProduct Category Volume Volume Volume Toys 85,142,348 83,174,63555,636,759 Pet Products 12,111,619 14,221,465 13,159,001

A comparison of values in Table 3 with those in Table 2 may show thatattribute “Toys” (Table 3) may be associated with predicted values thatmay hierarchically fall between the updated predicted values of“Electronics” and “Books” (e.g., Table 2). As such, the subset ofattributes in Table 2 may be updated to include the attribute “Toys,” tobe positioned between the attributes “Books” and “Electronics,” as shownin Table 4 below. As depicted in Table 4 below, the attribute “Women”may be removed from the prioritized subset of attributes since it nolonger fits within the “top five” criteria.

TABLE 4 User Income $0 to $25,000 $25,000-$50,000 $50,000 or moreProduct Category Volume Volume Volume Books 106,554,102 107,481,41272,112,474 Toys 85,142,348 83,174,635 55,636,759 Electronics 80,630,00779,985,547 53,741,345 Jewelry 68,045,998 67,223,879 45,000,199 Men'sapparel 26,910,094 27,747,203 18,023,814

The above description is for illustrative purposes only and is not to beconsidered limiting with respect to the prediction of values, updatingof a prioritized subset of attributes, and/or priority criteria. Forexample, in other implementations, priority criteria may specify othersorting preferences where attributes may be sorted by their respectivevalues from lowest to highest, alphabetically, and/or other criteria.

Returning to FIG. 1, the value component 112 may be programmed tocalculate, based on the prioritization, the final values of the valuesassociated with the (current) prioritized subset of the attributesbefore calculating the final values associated with other subsets of theattributes. In some implementations, one or more other attributes notincluded in the prioritized subset of the attributes may be madeavailable to the user via the data visualization user interface. Forexample, a first page may display the first subset of attributes, and auser may scroll between different pages in order to access and/orotherwise view the other attributes not included in the prioritizedsubset.

In some implementations, the query component 110 may assign weights toqueries related to a user request. The query component 110 may randomlyselect one or more queries from the weighted queries based on theassigned weights and execute the randomly-selected queries. In someimplementations, a respective weight may be assigned to a query based onhow influential the query or data obtained from the query is predictedto be on one or more requested results (e.g., certain final values to beprovided in response to a user request, representations of such values,or other requested results). As an example, if certain requested resultsare to be prioritized over other requested results (e.g., certainresults being placed before other results based on highest to lowestsorting, lowest to highest sorting, and/or other considerations), thequery component 110 may assign weight to queries based on (i) thepredicted influence of the respective data derived from such queries onthe requested results, (ii) the priorities of the requested results,(iii) or other considerations. In one use case, with respect to FIG. 2,data related to the attributes in sections 202 a-202 e may beprioritized over attributes not included in the sections 202 a-202 e(e.g., the “Product Category” attributes not within the “top five”list). With respect to Table 1 above, data related to Books,Electronics, Jewelry, Men, and Women may be prioritized over datarelated to Toys, Pet Products, and/or other “Product Category”attributes. As an example, a set of queries related to a request forvalues may comprise queries to obtain data for calculating sales volumesassociated with various product categories. Queries for obtaining datafor calculating the sales volumes for Books, Electronics, Jewelry, Men,and Women may be assigned greater weights (e.g., because they are withinthe “top five” list), as compared to weights assigned to queries forobtaining data for calculating sales volumes for Toys, Pet Products,and/or other “Product Category” attributes. In another use case, if thepriorities of the related data changes (e.g., based on updatedpredictions of requested results), the weights assigned to the queriesmay be updated based on the changed priorities. If Toys and Pet Productsare subsequently predicted to be in the “top five” list, queries forobtaining data for calculating the sales volumes for Toys and PetProducts may be reassigned greater weights, as compared to weightsassigned to queries for obtaining data for calculating sales volumes for“Product Category” attributes not within the “top five” list (e.g., evenif one or more of such attributes were initially in the “top five”list).

In some implementations, a respective weight may be assigned to a querybased on proximity of the query to a given query (e.g., a previouslyselected-and-executed query via which data for calculating ahigh-prioritized requested result is obtained, another particular query,etc.). The proximity of the query to a given query comprises proximityof the respective query to the given query with respect to apresentation order (e.g., a predefined presentation sorting order orother presentation order), a data source location attribute of the query(e.g., virtual or physical data source location for which the query isconstrained or other data source location attribute), a time attributeof the query (e.g., a specified date or time period for which the queryis constrained or other time attribute), a geographic location attributeof the query (e.g., a country, state, city, or other geographic regionfor which the query is constrained or other geographic locationattribute), or other considerations. Proximity of two items may, forexample, include (1) similarity of the two items (e.g., the same orsimilar data source location attribute values, time attribute values,geographic location attribute values, etc., of two queries), (2)closeness in distance of the two items (e.g., closeness in the order ofexecution of two queries, closeness in distance of results derived fromtwo queries as presented on a user interface, closeness in distance ofthe queries in a dataset, etc.), or other proximities of the two items.As an example, in some scenarios, data obtained via adjacent or moreproximate queries (e.g., proximate in data source location, in time,geographic location, etc.) tends to be more similar or related to oneanother, as compared to the data obtained via less proximate queries.

In one use case, with respect to Table 1 above, the sales volumes forBooks, Electronics, Jewelry, Men, and Women may be prioritized over thesales volumes for Toys, Pet Products, and/or other “Product Category”attributes based on the sales volumes predicted using data obtained viaexecution of an initial randomly-selected subset of queries. Theforegoing priority may, for instance, be based on a highest-to-lowestsales volume sorting order (e.g., indicating how results are to besorted on the user interface) and the predicted sales volumes for Books,Electronics, Jewelry, Men, and Women being greater than the predictedsales volumes for the other “Product Category” attributes. As anexample, if sales volume data obtained via selected-and-executed queriesfor Books, Electronics, Jewelry, Men, and Women was used to predict thatthe sales volumes for the foregoing product categories were the highest(compared to sales volumes for other product categories), other queriesfor sales volume data for the foregoing product categories or forproduct categories adjacent or more proximate to the foregoing productcategories (e.g., as currently ordered for presentation of the salesvolumes to a user) may be assigned greater weights, as compared toweights assigned to queries for sales volume data for product categoriesthat are less proximate to the foregoing product categories on thecurrent presentation order. In this way, although the next set ofqueries to be executed may still be randomly selected, the greaterweights assigned to queries for sales volume data for the more proximateproduct categories provide a higher probability that such queries forobtaining more prioritized results are randomly selected and executed(e.g., at least prior to other queries for obtaining less prioritizedresults being selected and executed).

As another example, with respect to the foregoing use case for Table 1above, if sales volume data obtained via selected-and-executed queriesfor Books, Electronics, Jewelry, Men, and Women was used to predict thatthe sales volumes for the foregoing product categories were the highest,queries to search the same data source location or more proximate datasource locations may be assigned greater weights, as compared to weightsassigned to queries to search less proximate data source locations. Forexample, in some scenarios, data stored in databases of the same company(or other more proximate databases) tends to be more similar or relatedwith one another, as compared to data stored in databases of differentcompanies (or other less proximate databases). As such, the greaterweights assigned to such proximate queries may provide a higherprobability that queries for obtaining more prioritized results arerandomly selected and executed (e.g., at least prior to other queriesfor obtaining less prioritized results being selected and executed).

In some implementations, the value component 112 may assign weights tosubsets of data obtained via one or more queries related to a userrequest and predict one or more requested results based on the subsetsof data and the assigned weights. In some implementations, a respectiveweight may be assigned to a given subset of data based on howinfluential the given subset of data is predicted to be on one or morerequested results (e.g., certain final values to be provided in responseto a user request, representations of such values, or other requestedresults). As an example, if the given subset of data is predicted toaccurately reflect a final value to be provided (in response to the userrequest), the given subset of data may be assigned a high weight forpredicting the final value (e.g., prior to the final value beingcalculated using all subsets of data for calculating such final value,prior to all the subsets of data being obtained, etc.). As anotherexample, the given subset of data may be assigned a high weight forpredicting another final value based on proximity of the given subset ofdata to at least another subset of data (e.g., where the other subset ofdata is for calculating the other final value but has not yet beenobtained, where the given subset of data's influence on the other finalvalue is predicted based on the proximity, etc.). The proximity of thegiven subset of data may comprise proximity of the given subset of datato one or more other subsets of data with respect to a data sourcelocation attribute of the given subset of data, a time attribute of thegiven subset of data, a geographic location attribute of the givensubset of data, or other considerations. As an example, in somescenarios, adjacent data or more proximate data in datasets tends tohave more similar or related values (compared to less proximate data inthe datasets). In one use case, a subset of data derived from a queryfor calculating a given requested value may be assigned a high weightfor predicting another requested value (e.g., prior to obtaining anothersubset of data for calculating the other requested value, prior toexecuting a query to obtain such other subset of data, etc.) if it isknown or predicted that the two subsets of data are adjacent orproximate one another in a given dataset. For example, the closer thetwo subsets of data (e.g., the subset of data and the other subset ofdata) are to one another in the dataset, the greater the weight that maybe assigned to the subset of data for predicting the other requestedvalue.

In another use case, a set of queries may comprise queries for datarelated to various geographic location attributes (e.g., a subset of zipcodes per state, a subset of cities per state, a subset of regions percountry, etc.). In some scenarios, the set of queries may comprise arandomly-selected subset of queries of relevant data sources to besearched for data for calculating requested results. The geographicallocation attributes for each set of queries may, for example, comprisepre-determined selected geographical areas or other geographical areaswhich together comprise at least a portion of an overall requestedgeographical area. If, for instance, only some data for calculating arequested value (or values) (associated with the overall requestedgeographic area) has been derived from one or more queries, the deriveddata may be used predict other subsets of data, and the predicted othersubsets of data may be used to predict the requested value (or othervalues). In some scenarios, weights may be assigned to one or moresubsets of the derived data for predicting the other subsets of datarespectively based on how close the geographic locations correspondingto the subsets of derived data and the geographic locationscorresponding to the other subsets of data are to one another. As anexample, the data derived from one query associated with a particulargeographic area may be assigned a high weight for predicting datarelated to adjacent or proximate geographic areas (e.g., because, insome scenarios, data for similar or related geographic attributes tendsto be closely located within a dataset). As another example, the dataderived from another query associated with a geographic area may beassigned a low weight for predicting data related to geographic areasthat are not proximate the geographic area associated with the otherquery.

In some implementations, the value component 112 may assign respectiveweights to data derived from queries based on one or more projectederror rates (e.g., a weight may be assigned to a subset of the deriveddata based on a projected error rate for the subset of derived data).For example, the value component 112 may select a sampling of dataderived from each query of a set of queries. In one implementation, thevalue component 112 may calculate a projected error rate between thesampled subsets of derived data based on the difference in values of thesampled subsets of derived data and the proximity of the sampled subsetsof derived data to each other. The projected error rate may then beutilized to assign weights to the data derived from each query. In oneuse case, a sampling of data derived from a query may comprise anapproximate 10% difference in value between the sampled subsets ofderived data. Based on the proximity of the sampled subsets of deriveddata, a projected error rate is calculated (e.g., approximately 10% ifthe sampled subsets of derived data are adjacent or less than 10% if thesampled subsets data are located further away from one another). Theprojected error rate may then be utilized to determine weights to beused to predict the requested values based on the subset of dataobtained via the first and/or second set of queries. In someimplementations, the value components may assign respective weights todata derived from queries based on data volatility predicted for thequeries.

The above descriptions illustrate the an implementation involving asingle attribute group defining rows and/or a single attribute groupdefining columns of a pivot table. However, in other implementations,users may request values associated with more than one attribute groupfor the rows and/or more than one attribute group for the columns.

As an illustrative example in FIG. 3, control element 224 may allow auser to add or remove attribute groups that define the rows and/orcolumns of the pivot table and the subsequent retrieval of data.Responsive to selection of control element 224, the user may be providedan additional user interface portions (e.g., pop up window or the like)which may facilitate configuring the Rows and Columns. In the Rowswindow, element 230 a may represent the currently selected firstattribute group for portion 210 (e.g., one of State, Gender, Zip Code,City, Income, Group, and/or other attribute group). The datavisualization user interface 200 may be programmed such that a user maychange the current selection of the first attribute group (e.g.,deselect element 230 a), add additional attribute groups to define theRows of the pivot table through selection of the “+” element (e.g.,facilitating selection of elements 230 b, 230 c, 230 d, and/or otherelements), and/or to perform more or less operations. By way ofillustration, element 230 b is shown selected such that the pivot tablein data visualization user interface 200 (in FIG. 4) may have Rowscorresponding to the first attribute group defined by element 230 a anda fourth attribute group defined by element 230 b.

Similarly, in the Columns window, elements 232 a and 232 b may representthe currently selected second attribute group for portion 212 (e.g., oneof State, Gender, Zip Code, City, Income, Group, and/or other attributegroup) and the currently selected third attribute group represented inportion 208. The data visualization user interface 200 may be programmedsuch that a user may change the current selection of the attributegroups (e.g., deselect elements 232 a and/or 232 b), add additionalattribute groups to define the Columns of the pivot table, and/or toperform more or less operations. For example, a similar pop-up window asthat showing elements 230 b-d may be provided when a user selects the“+” element for the Columns portion to show the other availableattribute groups that may be selected to define the Columns.

FIG. 4 illustrates an implementation of data visualization userinterface 200 wherein the rows of the table are defined by the firstattribute group represented by portion 210 and a fourth attribute grouprepresented by portion 236. The data visualization user interface 200 isadditionally shown programmed such that columns of the table may bedefined by the second attribute group represented by portion 212, thethird attribute group represented by portion 208, and a fifth attributegroup represented by portion 238. Portion 203 may include sections 203a-203 f that may represent a subset of attributes included in the fourthattribute group. Portion 205 may include sections 205 a-205 e that mayrepresent a subset of attributes included in the fifth attribute group.

It is noted that the current depiction of data visualization userinterface 200 is provided merely for illustrative purposes and is not tobe considered limiting with respect to the amount of attribute groupsselected to define the rows and/or columns. For example, in otherimplementations, the rows may be defined by more than one attributegroups while the columns may be defined by one attribute group, etc.However, it is noted that the manner in which queries for data areperformed, subsets of data are retrieved, and/or values associated withat least one of attributes may be similar to implementation shown anddescribed with respect to FIG. 2. For example, given the selections ofattributes groups shown in FIG. 4 in accordance with an implementation,a request for values associated with respective ones of the attributesof the various attribute groups may be received. A subset of datarelated to the attributes may be received based on an initial query (orqueries) for such data. Values associated with respective ones of theattributes (e.g., a value associated with at least an attribute of thefirst attribute group and with an attribute of the fourth attributegroup, and/or other values) may be predicted based on the initial subsetof data. Based on the prediction of the values, retrieval and/orprocessing of data related to at least one subset of the attributes maybe prioritized over retrieval and/or processing of data related to oneor more other subset of the attributes. The manner in which therespective subsets of the attributes may be determined, the values maybe predicted and/or updated, and/or other operations related toprioritized retrieval and/or processing of data as described herein mayfollow the same or similar processes described above. As an example, inone implementation with respect to FIG. 4, the data that may beretrieved may be related to all depicted attribute groups. Table 5 belowdepicts an example of data retrieval result in accordance with theimplementation of the data visualization user interface 200 shown inFIG. 4.

TABLE 5 User Gender Male Female Male Female Female User Income Product$25,000- $25,000- $50,000 or Sub- Product $0-$25,000 $0-$25,000 $50,000$50,000 more Category Category Volume Volume Volume ↓ Volume VolumeWatches Jewelry 33,012,040 34,662,170 116,381,612 34,836,617 44,214,836Accessories Electronic 20,279,672 37,480,551 103,016,203 46,337,39955,790,438 Bracelets Jewelry 74,045,124 32,662,423 75,316,569 97,711,35071,867,982 Women's Books 47,526,656 44,672,173 72,635,786 71,242,06370,516,363 Audio Electronics 83,296,596 25,383,349 65,450,089 55,185,29226,676,082

In one scenario, a fourth attribute group “Product Sub-Category” may beadded to the rows along with the first attribute group “ProductCategory.” The fourth attribute group may include attributes such asAccessories, Arts, Audio, Bracelets, Men's, Woman's, and/or otherattributes. A fifth attribute group “User Gender” may be added to thecolumns along with the second attribute group “User Income.” The fifthattribute group may include attributes such as Male or Female. Theirassociated values may comprise predicted and/or calculated valuesrepresenting sales volumes with respect to product category, productsubcategory, user income, and user gender for a certain time period(e.g., day, week, month, year, etc.). The values shown in Table 5 mayrepresent an initial prediction based on a subset of data received froman initial query. The “Product Category” attributes depicted in Table 5may represent a prioritized subset of attributes, while the depicted“Product Sub-Category” attributes may represent a prioritized subset ofthird attributes. It is noted that Table 5 is sorted from highest tolowest sales volume value associated with at least the “ProductSub-Category” attribute and, in particular, with respect to Male's withan income range between $25,000 and $50,000. However in otherimplementations, the sorting may be changed based on user input. Basedon a prediction of the values, it may be determined that the productsub-category “Watches” within the product category “Jewelry” occupiesthe highest sales volume at 116,381,612 units with respect to maleshaving a salary range between $25,000 and $50,000. Such values may bereflected by data elements 206 a-206 y of the data visualization userinterface 200 in FIG. 4. The values may be updated continuously torepresent the most up-to-date overall sales volume values associatedwith the respective attributes as more queries for data are performedand/or as the most update-to-date subsets of attributes are determined.

FIGS. 5 and 6 illustrate information exchange flow charts forprioritized retrieval and/or processing of data, in accordance with oneor more implementations. The information may be exchanged between aserver 102 (e.g., such as server 102 in FIG. 1) and one or more datasources (e.g., distributed data sources 500) over a network 106, such asthe Internet.

In FIG. 5, a request for values associated with respective firstattributes may be received 502 at server 102. First queries may beperformed 504 at server 102. The first queries may be received 506 atappropriate data source(s) included in the distributed data sources 500.A first subset of data based on the first queries may be sent 508 fromthe data sources and received 510 at the server 102. The server 102 mayinclude computer program components to predict 512 at least some of thevalues of respective ones of the first attributes based on the receivedfirst subset of data. A first subset of first attributes may bedetermined 514 based on the predicted values. Second queries for datarelated to the first subset of first attributes may be performed 516 bythe sever 102. The second queries may be received 518 at appropriateones of the distributed data sources 500. A second subset of data may besent 520 from the data sources and received 522 at the server 102. Basedon the second subset of data, the prediction of the values associatedwith the first subset of first attributes may be updated 524. One ormore other queries for data may be performed 524.

In FIG. 6, one or more other queries for data related to one or moreother first attributes may be performed 602 at server 102. The one ormore other queries may be received 604 at appropriate ones of the datasources 500. The data sources may send 606 one or more other subsets ofdata based on the one or more other queries to server 102. The one ormore other subsets of data may be received 608 at server 102 and used topredict 610 values of the one or more other first attributes. Thepredicted values of the one or more other first attributes may becompared 612 to the updated predicted values from step 524 shown in FIG.5. The first subset of first attributes may be updated 614 based on thecomparison. If the updated first subset of first attributes includes theother first attributes, the predicted values for the other firstattributes may be updated based on data included in the second subset ofdata received at step 522 in FIG. 5.

In accordance with one or more implementations presented herein, theserver 102 may be programmed to perform numerous micro-queries on thedistributed data sources 500. As an example, server 102 (e.g., querycomponent) may perform a plurality of micro-queries on distributed datasources 500 (e.g., comprising numerous data nodes at which data isstored) to update a current data visualization (e.g., updating a currentdata element set), generate a new data visualization (e.g., generating anew data element set), or facilitate other automated or user-requestedoperations. In response to the micro-queries, the query component maybegin receiving streams of data from multiple ones of the data nodes. Inresponse to the query component receiving results from a subset of themicro-queries, the value component may approximate or otherwise predictthe final data values to generate data elements representing the finaldata values based on the subset of results. When the results from all ofthe micro-queries have been received, the actual final data values maybe calculated, and the actual final data values may be utilized togenerate data elements to replace the approximated data elements.

By way of example, micro-query delegation may be performed to enablefaster real-time results of large streaming data by performing numerousmicro-queries on a distributed data store. An approximation of the finaldata values may be performed based on results from a subset of themicro-queries that are completed by extrapolating from the resultingdata that has been processed thus far to estimate the final data valuesbefore all of the micro-queries are completed. Data elements may begenerated based on the approximated data values to present users withapproximated visualized information without having to wait for all ofthe micro-queries to be completed. Upon completion of all themicro-queries or a determination that no further results is to bereceived in response to any further micro-queries, the final data valuesmay be calculated and then utilized to generate data elements based onthe final data values to replace the approximated data elements, thereby“sharpening” the data elements. In this way, among other benefits, userexperience may be improved by providing users with visualizedinformation representing final data values without having to wait forall of the results from the micro-queries to be received by predictingwhat the final data values will likely be based on results from a subsetof the micro-queries that have been received.

In some scenarios, different types of data may be joined based on anynumber or criteria (e.g., time, geography, or other criteria), andvisualization of the joined data may be presented using any number ofapproaches.

Returning to FIG. 1, user device 104 may comprise any type of mobileterminal, fixed terminal, and/or other device. For example, user device104 may comprise a desktop computer, a notebook computer, a netbookcomputer, a tablet computer, a smartphone, a navigation device, anelectronic book device, a gaming device, and/or any other user device.In some implementations, user device 104 may comprise the accessoriesand peripherals of these devices. User device 104 may also support anytype of interface to the user (such as “wearable” circuitry, etc.).

Communication network 106 of system 100 may comprise one or morenetworks such as a data network, a wireless network, a telephonynetwork, and/or other communication networks. A data network maycomprise any local area network (LAN), metropolitan area network (MAN),wide area network (WAN), a public data network (e.g., the Internet),short range wireless network, and/or any other suitable packet-switchednetwork. The wireless network may, for example, comprise a cellularnetwork and may employ various technologies including enhanced datarates for global evolution (EDGE), general packet radio service (GPRS),global system for mobile communications (GSM), Internet protocolmultimedia subsystem (IMS), universal mobile telecommunications system(UMTS), etc., as well as any other suitable wireless medium (e.g.,worldwide interoperability for microwave access (WiMAX), Long TermEvolution (LTE) networks, code division multiple access (CDMA), widebandcode division multiple access (WCDMA), wireless fidelity (WiFi),wireless LAN (WLAN), Bluetooth, Internet Protocol (IP) data casting,satellite, mobile ad-hoc network (MANET), etc.).

The external resource(s) 105 may include sources of information that areoutside of system 100, external entities participating with system 100(e.g., distributed data sources, and/or other considerations), and/orother resources. In some implementations, some or all of thefunctionality attributed herein to external resources 105 may beprovided by resources included in system 100.

In some implementations, server 102 may include an electronic storage118, one or more processors 120, and/or other components. Server 102 mayinclude communication lines, or ports to enable the exchange ofinformation with network 106 and/or other computing platforms.Illustration of server 102 in FIG. 1 is not intended to be limiting.Server 102 may include a plurality of hardware, software, and/orfirmware components operating together to provide the functionalityattributed herein to server 102. For example, server 102 may beimplemented by a cloud of computing platforms operating together asserver 102.

Electronic storage 118 may comprise non-transitory storage media thatelectronically stores information. The electronic storage media ofelectronic storage 118 may include one or both of system storage that isprovided integrally (i.e., substantially non-removable) with server 102and/or removable storage that is removably connectable to server 102via, for example, a port (e.g., a USB port, a firewire port, etc.) or adrive (e.g., a disk drive, etc.). Electronic storage 118 may includeoptically readable storage media (e.g., optical disks, etc.),magnetically readable storage media (e.g., magnetic tape, magnetic harddrive, floppy drive, etc.), electrical charge-based storage media (e.g.,EEPROM, RAM, etc.), solid-state storage media (e.g., flash drive, etc.),and/or other electronically readable storage media. Electronic storage118 may include one or more virtual storage resources (e.g., cloudstorage, a virtual private network, and/or other virtual storageresources). Electronic storage 118 may store software algorithms,information determined by processor 120, information received fromserver 102, information received from user devices 104, and/or otherinformation that enables server 102 to function as described herein. Insome implementations, electronic storage may comprise a non-transitory,tangible computer-readable storage medium with an executable programstored thereon, wherein the program instructs a microprocessor toperform some or all of the functionality of components 108, 110, 112,114, 116, 118 and/or other components.

Processor 120 may be configured to provide information processingcapabilities in server 102. As such, processor 120 may include a digitalprocessor, an analog processor, a digital circuit designed to processinformation, an analog circuit designed to process information, a statemachine, and/or other mechanisms for electronically processinginformation. Although processor 120 is shown in FIG. 1 as a singleentity, this is for illustrative purposes only. In some implementations,processor 120 may include a plurality of processing units. Theseprocessing units may be physically located within the same device, orprocessor 120 may represent processing functionality of a plurality ofdevices operating in coordination. Processor 120 may be configured toexecute components 108, 110, 112, 114, 116, 118 and/or other components.Processor 120 may be configured to execute components 108, 110, 112,114, 116, 118, and/or other components by software; hardware; firmware;some combination of software, hardware, and/or firmware; and/or othermechanisms for configuring processing capabilities on processor 120.

It should be appreciated that although components 108, 110, 112, 114,116, and 118 are illustrated in FIG. 1 as being co-located within asingle processing unit, in implementations in which processor 120includes multiple processing units, components 108, 110, 112, 114, 116,and/or 118 may be located remotely from the other components. Thedescription of the functionality provided by the different components108, 110, 112, 114, 116, and/or 118 described below is for illustrativepurposes, and is not intended to be limiting, as any of components 108,110, 112, 114, 116, and/or 118 may provide more or less functionalitythan is described. For example, components 108, 110, 112, 114, 116,and/or 118 may be eliminated, and some or all of its functionality maybe provided by other ones of components 108, 110, 112, 114, 116, and/or118. As another example, processor 120 may be configured to execute oneor more additional components that may perform some or all of thefunctionality attributed below to one of components 108, 110, 112, 114,116, and/or 118.

FIG. 7 illustrates a flowchart of processing operations of prioritizingretrieval and/or processing of data, in accordance with one or moreimplementations. The operations of process 700 presented below areintended to be illustrative. In some implementations, process 700 may beaccomplished with one or more additional operations not described,and/or without one or more of the operations discussed. Additionally,the order in which the operations of process 700 are illustrated in FIG.7 and described below is not intended to be limiting.

In certain implementations, one or more operations of process 700 may beimplemented in one or more processing devices (e.g., a digitalprocessor, an analog processor, a digital circuit designed to processinformation, an analog circuit designed to process information, a statemachine, and/or other mechanisms for electronically processinginformation). The one or more processing devices may include one or moredevices executing some or all of the operations of process 700 inresponse to instructions stored electronically on an electronic storagemedium. The one or more processing devices may include one or moredevices configured through hardware, firmware, and/or software to bespecifically designed for execution of one or more of the operations ofprocess 700.

In an operation 702, a request for values associated with respectivefirst attributes may be received. Operation 702 may be performed by adata request component that is the same as or similar to data requestcomponent 108 in accordance with one or more implementations.

In an operation 704, first queries for data related to the firstattributes may be performed. The first queries may be based on therequest at operation 702. Operation 704 may be performed by a querycomponent that is the same as or similar to query component 110, inaccordance with one or more implementations.

In an operation 706, a first subset of data related to calculating atleast some of the associated values may be received. The first subset ofdata may be received based on the first queries. Operation 706 may beperformed by a query component that is the same as or similar to querycomponent 110, in accordance with one or more implementations.

In an operation 708, at least some of the associated values may bepredicted based on the first subset of data. Operation 708 may beperformed by a value component that is the same as or similar to valuecomponent 112, in accordance with one or more implementations.

In an operation 710, retrieval and/or processing of data related to afirst subset of the first attributes may be prioritized over retrievaland/or processing of data related to one or more other subsets of thefirst attributes. The prioritization may be based on the prediction ofthe associated values. Operation 710 may be performed by aprioritization component that is the same as or similar toprioritization component 114, in accordance with one or moreimplementations.

FIG. 8 illustrates a flowchart of processing operations of prioritizingretrieval and/or processing of data, in accordance with one or moreimplementations. The operations of process 800 presented below areintended to be illustrative. In some implementations, process 800 may beaccomplished with one or more additional operations not described,and/or without one or more of the operations discussed. Additionally,the order in which the operations of process 800 are illustrated in FIG.8 and described below is not intended to be limiting.

In certain implementations, one or more operations of process 800 may beimplemented in one or more processing devices (e.g., a digitalprocessor, an analog processor, a digital circuit designed to processinformation, an analog circuit designed to process information, a statemachine, and/or other mechanisms for electronically processinginformation). The one or more processing devices may include one or moredevices executing some or all of the operations of process 800 inresponse to instructions stored electronically on an electronic storagemedium. The one or more processing devices may include one or moredevices configured through hardware, firmware, and/or software to bespecifically designed for execution of one or more of the operations ofprocess 800.

In an operation 802, a request for values associated with respectivefirst attributes may be received. Operation 802 may be performed by adata request component that is the same as or similar to data requestcomponent 108, in accordance with one or more implementations.

In an operation 804, a set of queries for data related to the firstattributes is generated based on the request. The first set of queriesmay be based on the request at operation 802. Operation 804 may beperformed by a query component that is the same as or similar to querycomponent 110, in accordance with one or more implementations.

In an operation 806, a first subset of queries for data related to thefirst attributes may be selected from the generated query set. As anexample, the first subset of queries may be randomly selected from thegenerated query set. The random selection may, for instance, be apseudorandom selection (e.g., by executing a RdRand instruction andapplying a seed value, by applying probabilities or other weights toeach query and sampling the queries based on such probabilities or otherweights to select a subset of the queries, etc.). Operation 806 may beperformed by a query component that is the same as or similar to querycomponent 110, in accordance with one or more implementations.

In an operation 808, the first subset of queries for data related to thefirst attributes may be performed. Operation 808 may be performed by aquery component that is the same as or similar to query component 110,in accordance with one or more implementations.

In an operation 810, a first subset of data related to calculating atleast some of the associated values may be received. The first subset ofdata may be received based on the first subset of queries. Operation 808may be performed by a query component that is the same as or similar toquery component 110, in accordance with one or more implementations.

In a step 812, the first subset of data is assigned a respective weightbased on how influential the first subset of data is predicted to be onone or more of the associated values. Operation 812 may be performed bya value component that is the same as or similar to value component 112,in accordance with one or more implementations.

In an operation 814, at least some of the associated values may bepredicted based on the first subset of data and the respective weights.Operation 814 may be performed by a value component that is the same asor similar to value component 112, in accordance with one or moreimplementations.

In an operation 816, retrieval and/or processing of data related to afirst subset of the first attributes may be prioritized over retrievaland/or processing of data related to one or more other subsets of thefirst attributes. The prioritization may be based on the prediction ofthe associated values. Operation 816 may be performed by aprioritization component that is the same as or similar toprioritization component 114, in accordance with one or moreimplementations.

Although the present invention has been described in detail for thepurpose of illustration based on what is currently considered to be themost practical and preferred implementations, it is to be understoodthat such detail is solely for that purpose and that the invention isnot limited to the disclosed implementations, but, on the contrary, isintended to cover modifications and equivalent arrangements that arewithin the spirit and scope of the appended claims. For example, it isto be understood that the present invention contemplates that, to theextent possible, one or more features of any implementation can becombined with one or more features of any other implementation.

What is claimed is:
 1. A computer-implemented method of prioritizingretrieval and/or processing of data based on query selection, the methodbeing implemented by one or more processors executing computer programinstructions that, when executed, perform the method, the methodcomprising: receiving a request for values; generating, based on therequest, queries for data related the request, wherein the queriescomprise a first subset of queries and one or more other subsets ofqueries for data related to the request; selecting the first subset ofqueries as one or more queries to be performed and performing the firstsubset of queries such that the first subset of queries is performedprior to the one or more other subsets of queries being performed;receiving, based on the first subset of queries, first subsets of datafor calculating a first value of the values; predicting the first valuebased on the first subsets of data before one or more other subsets ofdata for calculating the first value are received; and returning theprediction of the first value to respond, as least in part, to therequest.
 2. The method of claim 1, wherein selecting the first subset ofqueries comprises randomly selecting the first subset of queries as oneor more queries to be performed.
 3. The method of claim 1, wherein thefirst subset of queries is performed prior to the one or more othersubsets of queries being selected as one or more queries to be performedto respond to the request.
 4. The method of claim 1, further comprising:selecting a second subset of queries related to the request as one ormore queries to be performed and performing the second subset ofqueries; receiving, based on the second subset of queries, secondsubsets of data related to the request; and updating the prediction ofthe first value based on (i) the first subsets of data and (ii) thesecond subsets of data, the first subsets of data and the second subsetsof data both comprising data for calculating the first value; andreturning the updated prediction of the first value to respond, as leastin part, to the request.
 5. The method of claim 1, further comprising:assigning a weight to each of at least some of the queries; selecting,based on the assigned weights, a second subset of queries related to therequest as one or more queries to be performed and performing the secondsubset of queries; receiving, based on the second subset of queries,second subsets of data related to the request; and updating theprediction of the first value based on (i) the first subsets of data and(ii) the second subsets of data, the first subsets of data and thesecond subsets of data both comprising data for calculating the firstvalue; and returning the updated prediction of the first value torespond, as least in part, to the request.
 6. The method of claim 5,wherein assigning the weights comprises assigning a weight to each of atleast some of the queries based on proximity of the respective query toat least one query of the first subset of queries.
 7. The method ofclaim 5, wherein assigning the weights comprises assigning a weight toeach of at least some of the queries based on (i) proximity of therespective query to at least one query of the first subset of queriesand (ii) how influential the first subsets of data are on the predictedfirst value.
 8. The method of claim 7, wherein the proximity of therespective query comprises proximity of the respective query to at leastone query of the first subset of queries with respect to a presentationorder.
 9. The method of claim 7, wherein the proximity of the respectivequery comprises proximity of the respective query to at least one queryof the first subset of queries with respect to a time attribute of therespective query, a geographic location attribute of the respectivequery, or a data source location attribute of the respective query. 10.The method of claim 1, further comprising: assigning a weight to each ofthe first subsets of data based on how influential the respective firstsubset of data is on the first value, wherein predicting the first valuecomprises predicting the first value based on the first subsets of dataand the assigned weights of the first subsets of data.
 11. The method ofclaim 10, wherein assigning the weights to each of the first subsets ofdata comprises, with respect to a given subset of data of the firstsubsets of data, assigning the weight to the given subset of data forpredicting at least one other subset of data based on proximity of thegiven subset of data to the at least one other subset of data, whereinpredicting the first value comprises: predicting the at least one othersubset of data based on (i) the given subset of data and (ii) the weightassigned to the given subset of data; and predicting the first valuebased on (i) the first subsets of data and (ii) the predicted at leastone other subset of data.
 12. The method of claim 11, wherein theproximity of the given subset of data comprises proximity of the givensubset of data to the at least one other subset of data with respect toa data source location attribute of the given subset of data, a timeattribute of the given subset of data, or a geographic locationattribute of the given subset of data.
 13. A system for prioritizingretrieval and/or processing of data based on query selection, the systemcomprising: a computer system that includes one or more processorsexecuting computer program instructions that, when executed, cause thecomputer system to: receive a request for values; generate, based on therequest, queries for data related the request, wherein the queriescomprise a first subset of queries and one or more other subsets ofqueries for data related to the request; select the first subset ofqueries as one or more queries to be performed and performing the firstsubset of queries such that the first subset of queries is performedprior to the one or more other subsets of queries being performed;receive, based on the first subset of queries, first subsets of data forcalculating a first value of the values; predict the first value basedon the first subsets of data before one or more other subsets of datafor calculating the first value are received; and return the predictionof the first value to respond, as least in part, to the request.
 14. Thesystem of claim 13 wherein selecting the first subset of queriescomprises randomly selecting the first subset of queries as one or morequeries to be performed.
 15. The system of claim 13, wherein the firstsubset of queries is performed prior to the one or more other subsets ofqueries being selected as one or more queries to be performed to respondto the request.
 16. The system of claim 13, wherein the computer systemis caused to: select a second subset of queries related to the requestas one or more queries to be performed and performing the second subsetof queries; receive, based on the second subset of queries, secondsubsets of data related to the request; and update the prediction of thefirst value based on (i) the first subsets of data and (ii) the secondsubsets of data, the first subsets of data and the second subsets ofdata both comprising data for calculating the first value; and returnthe updated prediction of the first value to respond, as least in part,to the request.
 17. A computer-implemented method of prioritizingretrieval and/or processing of data based on query selection, the methodbeing implemented by one or more processors executing computer programinstructions that, when executed, perform the method, the methodcomprising: receiving a request for values; generating, based on therequest, queries for data related the request, wherein the queriescomprise a first subset of queries and one or more other subsets ofqueries for data related to the request; selecting the first subset ofqueries as one or more queries to be performed and performing the firstsubset of queries to respond to the request such that (i) the firstsubset of queries is performed prior to the one or more other subsets ofqueries being performed or (ii) no performance of the one or more othersubsets of queries occurs to respond to the request; receiving, based onthe first subset of queries, first subsets of data for calculating afirst value of the values; predicting the first value based on the firstsubsets of data before one or more other subsets of data for calculatingthe first value are received; and returning the prediction of the firstvalue to respond, as least in part, to the request.
 18. The method ofclaim 17, wherein selecting the first subset of queries comprisesrandomly selecting the first subset of queries as one or more queries tobe performed.
 19. The method of claim 17, wherein no performance of theone or more other subsets of queries occurs to respond to the request.20. The method of claim 17, further comprising: selecting a secondsubset of queries related to the request as one or more queries to beperformed and performing the second subset of queries; receiving, basedon the second subset of queries, second subsets of data related to therequest; and updating the prediction of the first value based on (i) thefirst subsets of data and (ii) the second subsets of data, the firstsubsets of data and the second subsets of data both comprising data forcalculating the first value; and returning the updated prediction of thefirst value to respond, as least in part, to the request.